package com.bdcom.autotest.interaction.bean;

import java.util.HashMap;
import java.util.Map;

import com.bdcom.autotest.util.excel.IBeanToRow;
import com.bdcom.autotest.util.excel.IRowToBean;

/**

1 选择 主机网卡 自动算出8个可用IP地址以便接下来使用  ；输入tftp 服务器地址，默认为选择网卡的 地址；
 输入 console server 地址 以及 8个端口号；

2 导入 excel ；(包含工单号)

3 设备接入consele server；（优先上电，插入console）

4 提示依次扫入8个SN； （软件异步进行 进monitor操作； 将结果 通过回调 显示在UI上；未成功进入moniter的 不能进行升级）

5 format 、 reboot;  setmac 、 setsn  、reboot ; （为第四步骤做的接口）

6 进入monitor后 ，升级（设置IP ， 拷贝文件；主程序文件、eprom文件、默认配置文件、web文件、logo文件 ） ；重启设备
 （要提供 设置IP 接口 ，拷贝文件接口，重启接口；修改mac地址接口、format接口； 需多线程 同步操作。 ）

7 （6步骤所有设备传输完毕重启后）提示用户是否需要切换波特率，如需要，手动点击按钮修改console server波特率；

8 等待consoleserver 设备重启完毕后、校验；  （结果通过回调显示在UI上）
（软件 显示 当前console server 的波特率 ， 并且可以修改 需提供获取与 修改 波特率接口）

9 写入日志；
10失败的可重试

 * @author GDQ
 *
 */
public class DeviceUpdBean implements IBeanToRow,IRowToBean {
	
	
	
	private static Map<String , Integer > rowToBean = new HashMap<String, Integer>();
	public static Map<String , Integer > beanToRow = new HashMap<String, Integer>();
	
	static{
		//
		rowToBean.put("workOrderNum", 0 );
		rowToBean.put("oemsn", 3 );
		rowToBean.put("bdsn", 1);
		rowToBean.put("mac", 2);
		rowToBean.put("username", 4);
		rowToBean.put("password", 5);
		
		rowToBean.put("binName", 6);
		rowToBean.put("epromName", 7);
		rowToBean.put("configName", 8);
		rowToBean.put("webName", 9);
		rowToBean.put("logoName", 10);
		rowToBean.put("oldBaud", 11);
		rowToBean.put("newBaud", 12);
		
		//=======================================
		beanToRow.put("", 1); //B

	}
	
	//工单号
	private String workOrderNum;
	//OEMSN、BDSN、MAC、用户名、密码、主程序文件、eprom文件、默认配置文件、web文件、logo文件 
	private String oemsn;
	private String bdsn;
	private String mac;
	private String username;
	private String password;
	private String binName;
	private String epromName;
	private String configName;
	private String webName;
	private String logoName;

	private String oldBaud;
	private String newBaud;

	//telnet 端口
	private int consoleSeverPort ;
	//升级结果
	private boolean udpFlag = false;
	//结果原因
	private String resultStr ;
	
	//是否已经进入monitor 
	private boolean monitorFlag = false;
	//进入monitor失败原因
	private String monitorStr ;
	
	public String getWorkOrderNum() {
		return workOrderNum;
	}
	public void setWorkOrderNum(String workOrderNum) {
		this.workOrderNum = workOrderNum;
	}
	public String getOemsn() {
		return oemsn;
	}
	public void setOemsn(String oemsn) {
		this.oemsn = oemsn;
	}
	public String getBdsn() {
		return bdsn;
	}
	public void setBdsn(String bdsn) {
		this.bdsn = bdsn;
	}
	public String getMac() {
		return mac;
	}
	public void setMac(String mac) {
		this.mac = mac;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getBinName() {
		return binName;
	}
	public void setBinName(String binName) {
		this.binName = binName;
	}
	public String getEpromName() {
		return epromName;
	}
	public void setEpromName(String epromName) {
		this.epromName = epromName;
	}
	public String getConfigName() {
		return configName;
	}
	public void setConfigName(String configName) {
		this.configName = configName;
	}
	public String getWebName() {
		return webName;
	}
	public void setWebName(String webName) {
		this.webName = webName;
	}
	public String getLogoName() {
		return logoName;
	}
	public void setLogoName(String logoName) {
		this.logoName = logoName;
	}
	public int getConsoleSeverPort() {
		return consoleSeverPort;
	}
	public void setConsoleSeverPort(int consoleSeverPort) {
		this.consoleSeverPort = consoleSeverPort;
	}
	public boolean getUdpFlag() {
		return udpFlag;
	}
	public void setUdpFlag(boolean udpFlag) {
		this.udpFlag = udpFlag;
	}
	public String getResultStr() {
		return resultStr;
	}
	public void setResultStr(String resultStr) {
		this.resultStr = resultStr;
	}
	
	public boolean getMonitorFlag() {
		return monitorFlag;
	}
	public void setMonitorFlag(boolean monitorFlag) {
		this.monitorFlag = monitorFlag;
	}
	public String getMonitorStr() {
		return monitorStr;
	}
	public void setMonitorStr(String monitorStr) {
		this.monitorStr = monitorStr;
	}

	public String getOldBaud() {
		return oldBaud;
	}

	public void setOldBaud(String oldBaud) {
		this.oldBaud = oldBaud;
	}

	public String getNewBaud() {
		return newBaud;
	}

	public void setNewBaud(String newBaud) {
		this.newBaud = newBaud;
	}

	@Override
	public Map<String, Integer> getBeanToRow() {
		return beanToRow;
	}
	@Override
	public Map<String, Integer> getRowToBean() {
		return rowToBean;
	}

	public String printInfo(){
		return "workOrderNum："+workOrderNum+" oemsn:"+oemsn+
				" bdsn："+bdsn+" mac:"+mac+
				" username："+username+" password:"+password+
				" binName："+binName+" epromName:"+epromName+
				" configName："+configName+" webName:"+webName+
				" logoName："+logoName+" oldBaud:"+oldBaud+
				" newBaud:"+newBaud;
	}
	
	
	
	
	
}	
